Embodiments of the inventive concept relate generally to error correction technology. More particularly, embodiments of the inventive concept relate to a memory controller that controls a memory device to generate error correction code (ECC) data and uses the ECC data to correct errors in read data.
Semiconductor memory devices can be roughly divided into two categories according to whether they retain stored data when disconnected from power. These categories include volatile memory devices, which lose stored data when disconnected from power, and nonvolatile memory devices, which retain stored data when disconnected from power. Examples of volatile memory devices include dynamic random access memory (DRAM) and static random access memory (SRAM). Examples of nonvolatile memory devices include flash memory, electrically erasable programmable read-only memory (EEPROM), and a resistive random access memory (RRAM).
Flash memory is an especially popular form of nonvolatile memory due to various attractive features such as relatively high storage capacity, low power consumption, and resistance to mechanical shock. However, as the storage capacity of flash memory increases, it becomes more difficult to maintain reliable performance. Consequently, researchers continue to develop error correction strategies to address reliability issues in newer flash memory devices.